package cn.edu.cuit.listener;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 * @author fhzheng
 * <h1> 在线人数监听组件 </h1>
 * <li> 主要监听用户的session的创建和销毁
 * <li> 1.创建一个session，则增加一个用户
 * <li> 2.销毁一个session，则减少一个用户
 */

public class OnlineListener implements HttpSessionListener {
	
	// 用于统计在线人数
	private int count = 0;

	/**
	 *	<li> 随用户数增加而增加
	 */
	public void sessionCreated(HttpSessionEvent hse) {
		
		// session对象创建时count变量加1
		count++;
		// 获取容器上下文对象
		ServletContext context = hse.getSession().getServletContext();
		// 重置计数器值
		context.setAttribute("count", new Integer(count));
	}

	/**
	 * <li> 随用户减少而减少
	 */
	public void sessionDestroyed(HttpSessionEvent hse) {
		// session对象销毁时count变量减1
		count--;
		ServletContext context = hse.getSession().getServletContext();
		context.setAttribute("count", new Integer(count));
	}
}